1. Field of the Invention
The invention relates to target emulation technologies. More specifically, the invention relates to Fibre Channel hard disk emulation. Even more specifically, the invention relates to testing Fibre Channel devices that are capable of addressing multiple disk drives.
“SCSI” (Small Computer System Interface) is an industry standard for connecting peripheral devices and their controllers to an initiator (en.wikipedia.org/wiki/SCSI). A SCSI device is usually a peripheral (for example, a hard disk drive) that responds to an operation requested by a SCSI “initiator,” which is usually the host system. SCSI peripherals are “targets,” but for some commands, the SCSI peripheral may need to act temporarily as an initiator.
“Fibre Channel” is another industry standard (en.wikipedia.org/wiki/Fibre_channel). Logically, the “Fibre Channel” is a bidirectional, full-duplex, point-to-point, serial data channel structured for high performance data communication. Physically, the Fibre Channel is an interconnection of multiple communication ports interconnected by 1) a switching network (a “fabric”), 2) a point-to-point link, or 3) an arbitrated loop. Fibre Channel is a generalized transport mechanism that has no protocol of its own or native input/output command set but can transport any existing Upper Level Protocols (“ULPs)” such as Asynchronous Transfer Mode (“ATM”), Internet Protocol (“IP”), and SCSI. Commonly, Fibre Channel refers to a serial computer bus intended for connecting high speed SCSI storage devices to computers in a Storage Area Network (“SAN”).
A Logical Unit Number (“LUN”) is a SCSI identifier within a target assigned to each Fibre Channel accessible disk that allows the host system to address and access data on the target devices. One physical SCSI hard disk drive can be subdivided into multiple LUNs.
2. Description of Prior Art
The most common way to test Fibre Channel devices that address multiple disk drives is to create a test environment that contains multiple physical disk drives. For example, if a lab needed to test a Fibre Channel device that claimed to be able to address a varying amount of disk drives, each with different parameters, the lab's test engineers would need to physically assemble a large number of disk drives or “scratch disks” for use in testing. Furthermore, to determine how the device would react to adverse conditions such as bad drives, labs would maintain some set of faulty disk drives to enable this level of testing to occur. Such an environment is expensive and time-consuming to set up.
There have been some attempts to solve the problem of providing an environment for testing disk drives.
There are Fibre Channel bus analyzer products on the market that allow for single drive emulation, but these usually require a great amount of programming (in, for example, the C++ programming language). If properly programmed and configured, analyzer and/or traffic generator products such as I-TECH's IPC-6160 (www.i-tech.com/pdfs/IPC-6160.pdf), Ancot's FCAccess 2000G (www.ancot.com/fcproducts/2000G/2000g.html), and Finisar's (formerly Data Transit) PacketMaster (www.data-transit.com/products/pdfs/is_pm_svt.pdf) can emulate a drive.
The SANmelody product by DataCore (www.datacore.com/) serves virtual hard disks to popular operating systems using connection protocols such as standard iSCSI over Ethernet and Fibre Channel, and it supports allocation requests from Windows Virtual Disk Service (VDS). The problem with this product is that it is a software product designed to run on only the Microsoft Windows operating system. Since it is a server product, a Windows server is required, and system administrator time is required to set up and run the software. Also, this product is intended for the permanent storage of data, not the test environment, and therefore does not allow for the emulation of error cases, rapid creation and removal of devices, or the emulation of a set of devices that exceed the real storage capability of the host system.
U.S. Pat. No. 6,631,456 “Hypercache RAM based disk emulation and method” (Leighnor et al. Oct. 2, 2003) discloses a RAM-based memory emulation device directed at solving the problem of reducing access times for swap and paging files. The Leighnor patent, however, involves improving the performance of a personal computer by using some of the computer's RAM as a temporary hard disk and does not relate to Fibre Channel devices or Fibre Channel device testing.
There are several problems with the approaches of the prior art.
One problem is time and money. Setting aside a large amount of Fibre Channel disk drives for testing and development purposes can cost a significant amount of money. Configuring these resources into different configurations to allow for testing of multiple scenarios takes lab time and effort. Physically connecting and changing drive configurations can quickly take considerable time and resources of lab personnel.
Another problem is the lack of reliable error and fault testing. With physical disks, it is difficult to find and keep an inventory of “bad” drives with predictable behavior and then configuring them into test systems. Yet it is important for device vendors to be able to test their devices against disks with known bad conditions. The ability to inject specific types of disk errors into a test environment is missing in the prior art.
Another problem is the lack of controllable environment variables. For example, to test a device, a tester may want to test 40 disk drives, then 20 minutes later have 10 of the disks fail or go away, then 5 minutes later add the disks back into the test. This example could represent a situation where power is lost to the 10 drives and later restored. With the prior art, testers lack the ability to create, change, and test scenarios such as this.
None of the above provides a suitable environment for efficiently testing Fibre
Channel devices. What is needed for the software, hardware, and infrastructure test market, therefore, is
1) a system that provides virtual disk drives for testing without the need for specialized software or extensive programming;
2) a user interface to the system that provides simple and instantaneous creation and deletion of test LUNs one at a time or in groups; and
3) the ability to simply and instantaneously modify any of the parameters associated with a storage drive across one device or in groups.